package pe.edu.upc.dsd.esb.whereeat.component.resource;

import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import pe.edu.upc.dsd.esb.whereeat.component.AbstractComponent;
import pe.edu.upc.dsd.whereeat.dao.CalificacionDAO;
import pe.edu.upc.dsd.whereeat.dao.UsuarioDAO;
import pe.edu.upc.dsd.whereeat.domain.Calificacion;
import pe.edu.upc.dsd.whereeat.service.CalificacionService;
import pe.edu.upc.dsd.whereeat.service.impl.CalificacionServiceImpl;

@Component
@Path("/calificacion")
public class CalificacionResourceComponent extends AbstractComponent {

	@Autowired
	private CalificacionService calificacionService;

	public CalificacionResourceComponent() {
	}

	@GET
	@Produces("text/plain")
	@Path("/{codigoRestaurant}")
	public String getCalificacionRestaurant(
			@PathParam("codigoRestaurant") String codigoRestaurant) {
		try {
			return String
					.valueOf(calificacionService
							.getCalificacionByRestaurantId(new Integer(
									codigoRestaurant)));
		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "-1";
	}

	@POST
	public String setCalificacionRestaurant(Calificacion calificacion) {
		System.out
				.println(String
						.format(":: setCalificacionRestaurant :: request={codigoRestaurant=%s,codigoUsuario=%s,calificacion=%s}",
								calificacion.getCodigoRestaurant(),
								calificacion.getCodigoUsuario(),
								calificacion.getCalificacion()));
		try {
			calificacionService.save(calificacion);
			return "1";
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "0";
	}

}
